package com.company;

/**
 * @author zhf
 * @date 2021/12/1
 */

import java.util.ArrayList;
import java.util.List;

/**
 * 给你一个二叉树的根节点 root ，判断其是否是一个有效的二叉搜索树。
 */
public class IsBst {
    List<Integer> list = new ArrayList<>();

    public boolean isValidBST(TreeNode root) {
        if (root == null){
            return true;
        }
        inorderTraversal(root);


        //如果中序遍历的结果严格递增，则为二叉搜索树；
        for (int i = 1; i < list.size(); i++) {
            if (list.get(i) <= list.get(i - 1)){
                return false;
            }
        }
        return true;
    }

    //中序遍历，将遍历的结果放在list中；
    public List<Integer> inorderTraversal(TreeNode root) {
        inorderTraversal(root.left);
        list.add(root.val);
        inorderTraversal(root.right);
        return list;
    }
}
